package cn.ibobo.lease.common.util;

import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Description: 获取ueditor相关信息类 <br /> 
 * Project: meirenhui <br />
 * ClassName: UeditorUtil <br />
 * Copyright: Copyright (c) 2017 deshang<br />
 * @author 郭鑫
 * @version 1.0 2017年12月19日下午5:17:56
 */
@Component
public class UeditorUtil {
	/**
     * ueditor获取纯文本
     * @author 郭鑫
     * @createDate 2017年12月19日下午3:59:20
     * @param inputString
     * @return
     */
    public static String getContent(String inputString) {
		String htmlStr = inputString; // 含html标签的字符串  
        String textStr = "";  
        Pattern p_script;
        Matcher m_script;
        Pattern p_style;
        Matcher m_style;
        Pattern p_html;
        Matcher m_html;
        try {  
            String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>  
            String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>
        String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式  
        p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);  
        m_script = p_script.matcher(htmlStr);  
        htmlStr = m_script.replaceAll(""); // 过滤script标签  
        p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);  
        m_style = p_style.matcher(htmlStr);  
        htmlStr = m_style.replaceAll(""); // 过滤style标签  
        p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);  
        m_html = p_html.matcher(htmlStr);  
        htmlStr = m_html.replaceAll(""); // 过滤html标签  
        textStr = htmlStr;  
    } catch (Exception e) {
    	//System.err.println("Content: " + e.getMessage());
    }  
    //剔除空格行  
    textStr=textStr.replaceAll("[ ]+", " ");  
    textStr=textStr.replaceAll("(?m)^\\s*$(\\n|\\r\\n)", "");
    textStr = textStr.replaceAll("&nbsp;", "");
    return textStr;// 返回文本字符串 
	}
    
    /**
     * 获取带样式文本
     * @author 郭鑫
     * @createDate 2018年1月4日下午7:47:20
     * @param inputString
     * @return
     */
    public static String getContentStyle(String inputString) {
    	String htmlStr = inputString;  
        String textStr = ""; 
        String regxpForImgTag = "<img\\s[^>]+/>";
        Pattern pattern = Pattern.compile(regxpForImgTag);
        Matcher matcher = pattern.matcher(htmlStr);
        htmlStr = matcher.replaceAll("");
        textStr = htmlStr;
        textStr=textStr.replaceAll("[ ]+", " ");  
        textStr=textStr.replaceAll("(?m)^\\s*$(\\n|\\r\\n)", "");
        textStr = textStr.replaceAll("&nbsp;", "");
        return textStr;
    }
    
    /**
     * ueditor获取图片路径
     * @author 郭鑫
     * @createDate 2017年12月19日下午4:17:49
     * @param htmlStr
     * @return
     */
    public static List<String> getImgStr(String htmlStr) {  
    	List<String> pics = new ArrayList<String>();  
        String img = "";  
        Pattern p_image;  
        Matcher m_image;  
        String regEx_img = "<img.*src\\s*=\\s*(.*?)[^>]*?>";  
        p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);  
        m_image = p_image.matcher(htmlStr);  
        while (m_image.find()) {  
            // 得到<img />数据  
            img = m_image.group();  
            // 匹配<img>中的src数据  
            Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);  
            while (m.find()) {  
                pics.add(m.group(1));  
            }  
        }  
        return pics;  
    }

    /**
     * 手机号验证
     * @author ：caishihao
     * 2018年1月9日下午2:58:46
     * @param  str
     * @return 验证通过返回true
     */
    public static boolean isMobile(final String str) {
        Pattern p = null;
        Matcher m = null;
        boolean b = false;
        p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); // 验证手机号
        m = p.matcher(str);
        b = m.matches();
        return b;
    }
}
